// 89. 格雷编码
/**
 * @param {number} n
 * @return {number[]}
 */
// 对称法
var grayCode = function (n) {
    const ret = [0]
    for (let i = 1; i <= n; i++) {
        const m = ret.length
        for (let j = m - 1; j >= 0; j--) {
            ret.push(ret[j] | (1 << (i - 1)))
        }
    }
    return ret
}
grayCode(4)